home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs06.d81
/
math64.prg
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
7KB
|
201 lines
10 REM ****************************
15 REM * MATH FOR KIDS *
20 REM ****************************
30 GOSUB 5000
50 PRINT"[147]":POKE 53281,6:POKE53280,8
60 PRINT,"********************
70 [153],"* THE MATH TUTOR *
80 PRINT,"********************":PRINT:PRINT"[159]"
90 PRINT" [207][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][208]"
100 FORQ=1 TO 13: PRINT" [180] [170]": NEXT
110 PRINT" [204][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][186]"
120 PRINT"":PRINT," [158]MAKE YOUR CHOICE":PRINT
130 PRINT," [219] : ADDITION":PRINT
140 PRINT," [192] : SUBTRACTION":PRINT
150 PRINT," * : MULTIPLICATION":PRINT
160 PRINT," / : DIVISION":PRINT
165 PRINT," F1 - END PROGRAM"
175 GET Q1$:IF Q1$="" THEN 175
180 CC$="RIGHT":WW$="WRONG":AN$=" ANSWER(S) = "
185 IF(Q1$ ="*")OR (Q1$ ="+")OR(Q1$ ="-")OR (Q1$ ="/")THEN 300
190 Q$=Q1$:GOSUB 3000
199 GOTO175
300 PRINT"[147][159] [207][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][208]"
310 FORQ=1 TO 13: PRINT" [180] [170]": NEXT
320 PRINT" [204][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][186]"
330 PRINT,"":PRINT"[158]DO YOU WANT TABLES OR DO YOU"
340 PRINT" WANT ME TO MAKE UP PROBLEMS ?":PRINT
346 DD$="[144]NUMBER"
350 PRINT," T = TABLES"
360 PRINT," P = PROBLEMS";:INPUT TP$
370 IF TP$ ="T" THEN 385
380 IF TP$ ="P" THEN 385
382 GOTO 330
385 PRINT"":FORI=1TO30:PRINT" ";:NEXT:PRINT:IF TP$="T"THEN 388
386 IF TP$="P" AND Q1$="/" THEN DD$="[153] DIVISOR THAT"
387 PRINT"WHAT IS THE BIGGEST ";DD$;" I SHOULD USE ":INPUT Q2$
388 IF TP$="T"THEN INPUT" WHICH NUMBER DO YOU WANT TABLE FOR";Q2$
389 Q2=VAL(Q2$):IF Q2=0 THEN 385
395 PRINT"":FORI=1TO279:PRINT" ";:NEXT
400 IF TP$="T" AND Q1$="+" THEN 600
410 IF TP$="T" AND Q1$="-" THEN 800
420 IF TP$="T" AND Q1$="*" THEN 1000
430 IF TP$="T" AND Q1$="/" THEN 1200
440 IF TP$="P" AND Q1$="+" THEN 2000
450 IF TP$="P" AND Q1$="-" THEN 2200
460 IF TP$="P" AND Q1$="*" THEN 2400
470 IF TP$="P" AND Q1$="/" THEN 2600
600 REM TABLE MENU ADDITION
610 PRINT" ADDITION TABLE FOR THE NUMBER ";Q2:PRINT""
615 FOR U= 0 TO 9
620 PRINT""Q2"+"U" = ";Q2+U
625 NEXT
628 PRINT""
630 FOR U=10 TO 19
635 PRINT,""Q2"+"U" = ";Q2+U
640 NEXT
650 PRINT"PRESS ANY KEY FOR MENU";
660 GET V$:IF V$="" THEN 660
670 V$=""
699 RUN 50
800 REM TABLE MENU SUBTRACTION
810 PRINT" SUBTRACTION TABLE FOR THE NUMBER ";Q2:PRINT""
815 FOR U= Q2 TO Q2+9
820 PRINT""U"-"Q2" = ";U-Q2
825 NEXT
828 PRINT""
830 FOR U=Q2+10 TO Q2+19
835 PRINT,""U"-"Q2" = ";U-Q2
840 NEXT
850 PRINT"PRESS ANY KEY FOR MENU";
860 GET V$:IF V$="" THEN 860
870 V$=""
899 RUN 50
1000 REM TABLE MENU MULTIPLICATION
1010 PRINT" MULTIPLICATION TABLE FOR THE NUMBER";Q2:PRINT""
1020 FOR U= 0 TO 6
1030 PRINT""U"X"Q2" = ";Q2*U
1040 NEXT
1050 PRINT""
1060 FOR U=7 TO 12
1070 PRINT,""U"X"Q2" = ";Q2*U
1080 NEXT
1090 PRINT"PRESS ANY KEY FOR MENU";
1100 GET V$:IF V$="" THEN 1100
1110 V$=""
1199 RUN 50
1200 REM TABLE MENU DIVISION
1210 PRINT" DIVISION TABLE FOR THE NUMBER";Q2:PRINT""
1220 FOR U= 1 TO 6
1230 PRINT""Q2*U"/"Q2" = ";U
1240 NEXT
1250 PRINT""
1260 FOR U=7 TO 12
1270 PRINT,""Q2*U"/"Q2" = ";U
1280 NEXT
1290 PRINT"PRESS ANY KEY FOR MENU";
1300 GET V$:IF V$="" THEN 1300
1310 V$=""
1399 RUN 50
2000 REM PROBLEM MENU ADDITION
2005 DD$="[144]NUMBER"
2010 GOSUB 4000:GOSUB 4200:B=0
2015 GOSUB 2090:GOSUB4225
2020 PRINTX" + "Y"=";:INPUT F$
2025 IF LEFT$(F$,1)="_"THEN F$ ="": GOTO 50
2030 F=VAL(F$):B=B+1
2040 IF F=X+Y THEN PRINT:PRINT"NICE GOING - YOU'RE RIGHT!":RA=RA+1
2045 IF F=X+Y THEN FOR R= 1 TO 800:NEXT:GOTO2000
2050 IFF<>X+YTHENPRINT:PRINT"SORRY - TRY AGAIN!":FORH=1TO800:NEXT
2060 IF F<>X+Y THEN WA=WA+1: GOSUB4200
2065 IF F<>X+YTHENIFB>=5 THENPRINT"[147] THE CORRECT ANSWER IS"
2070 IF F<>X+YTHENIFB>=5 THENPRINT" "X"+"Y" ="X+Y:FORE=1TO5000:NEXT:GOTO2020
2080 GOTO 2020
2090 PRINT"PRESS _ KEY FOR MENU"
2199 RETURN
2200 REM PROBLEM MENU SUBTRACTION
2205 DD$="[144]NUMBER"
2210 GOSUB 4000
2215 IF Y>X THEN GOTO 2210
2218 GOSUB 4200:B=0
2219 GOSUB 2090:GOSUB4225
2220 PRINTX" - "Y"=";:INPUT F$
2225 IF LEFT$(F$,1)="_"THEN F$ ="": GOTO 50
2230 F=VAL(F$):B=B+1
2240 IF F=X-Y THEN PRINT:PRINT"NICE GOING - YOU'RE RIGHT!":RA=RA+1
2245 IF F=X-Y THEN FOR R = 1 TO 800:NEXT:GOTO2200
2250 IFF<>X-YTHENPRINT:PRINT"SORRY - TRY AGAIN!":FORH=1TO800:NEXT
2260 IF F<>X-Y THEN WA=WA+1: GOSUB4200
2265 IF F<>X-YTHENIFB>=5 THENPRINT"[147] THE CORRECT ANSWER IS"
2270 IF F<>X-YTHENIF B>=5THENPRINT" "X"-"Y" ="X-Y:FORE=1TO5000:NEXT:GOTO2220
2280 GOTO 2220
2299 REM
2400 REM PROBLEM MENU MULTIPLICATION
2405 DD$="[144]NUMBER"
2410 GOSUB 4000:GOSUB 4200:B=0
2415 GOSUB 2090:GOSUB4225
2420 PRINTX" X "Y"=";:INPUT F$
2425 IF LEFT$(F$,1)="_"THEN F$ ="": GOTO 50
2430 F=VAL(F$):B=B+1
2440 IF F=X*Y THEN PRINT:PRINT"NICE GOING - YOU'RE RIGHT!":RA=RA+1
2445 IF F=X*Y THEN FOR G=1 TO 900:NEXT:GOTO2400
2450 IFF<>X*YTHENPRINT:PRINT"SORRY - TRY AGAIN!":FORH=1TO800:NEXT
2460 IF F<>X*Y THEN WA=WA+1: GOSUB4200
2465 IF F<>X*Y THEN IF B>=5 THEN PRINT"[147] THE CORRECT ANSWER IS"
2470 IF F<>X*YTHENIF B>=5THENPRINT" "X"X"Y" ="X*Y:FORE=1TO5000:NEXT:GOTO2420
2480 IF F <>X*Y THEN 2420
2599 REM
2600 REM PROBLEM MENU DIVISION
2605 DD$="[153] DIVISOR "
2610 GOSUB 4000
2615 Z=X*Y:IF Y> Q2 THEN2610
2618 GOSUB 4200:B=0
2619 GOSUB 2090:GOSUB4225
2620 PRINTZ" / "Y"=";:INPUT F$
2625 IF LEFT$(F$,1)="_"THEN F$ ="": GOTO 50
2630 F=VAL(F$):B=B+1
2640 IF F=Z/Y THEN PRINT:PRINT"NICE GOING - YOU'RE RIGHT!":RA=RA+1
2645 IF F=Z/Y THEN FOR G=1 TO 900:NEXT:GOTO2600
2650 IFF<>Z/YTHENPRINT:PRINT"SORRY - TRY AGAIN!":FORH=1TO800:NEXT
2660 IF F<>Z/Y THEN WA=WA+1: GOSUB4200
2665 IF F<>Z/Y THEN IF B>=5 THEN PRINT"[147] THE CORRECT ANSWER IS"
2670 IF F<>Z/YTHENIF B>=5THENPRINT" "Z"/"Y" ="Z/Y:FORE=1TO5000:NEXT:GOTO2620
2680 IF F <>Z/Y THEN 2620
2699 REM SINSINSINSUBROUTINES START HERE SINSINSIN
3000 IFQ$="[133]"THEN GOSUB 7000:REM **F1**
3010 IF Q$="[133]" THEN IF(RA+WA)>0 THEN PRINTCC$;AN$;RA:PRINTWW$;AN$;WA
3020 IF Q$="[133]"THEN END
3030 RETURN
4000 X=INT(Q2*RND(1))+1
4010 Y=INT(Q2*RND(1))+1
4050 RETURN
4200 PRINT"[147][159] [207][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][208]"
4210 FORQ=1 TO 13: PRINT" [180] [170]": NEXT
4220 PRINT" [204][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][186]":PRINT""
4225 PRINT"";
4230 RETURN
4999 REM COPIED 'SHIFTING LETTERS' FROM CIS A FEW YEARS AGO - AUTHOR UNKNOWN
5000 PRINT"[147][144]":POKE53281,1
5010 READ WS$
5020 IFWS$="-1" THEN FOR Y=1 TO 500:NEXT:RETURN
5030 PRINT"";:REM **** DELETE THIS LINE AND IT PRINTS VERTICALLY ****
5040 PRINTTAB(38)"";WS$:PRINT"[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";CHR$(20)
5050 REM *** IN 240 THE VALUE FOR LEFT CRSR = THE TAB VALUE PLUS 1 ***
5060 FOR J=1TO 100:NEXT:REM SCROLL SPEED
5070 GOTO 5010
5080 REM *+*+* IN THE DATA STATEMENTS BELOW: THE SPACES ARE WHAT PUSH
5090 REM +*+*+ THE CHAR. ALL THE WAY OFF THE SCREEN
5100 REM---------------------------REM
5110 DATA *, , ,T,H,E, ,M,A,T,H, ,T,U
5120 DATA T,O,R, , ,*, , , , , , , , ,-1
6998 REM SCREEN WIPER BY JOSEPH R. CHARNETSKI: COPIED FROM RUN MAG 4/86
6999 REM PAGE 96 - MAGIC TRICK # $2DB
7000 REM **** SCREEN CURTAIN ****
7020 C1$="_":REM WIPE ^ OR _
7030 C1=23:C2=19:C3=24:C4=39:C5=59903
7040 FOR J=0 TO C1:C2$=C2$+CHR$(32)+CHR$(157)+CHR$(17):NEXT:C2$=C2$+CHR$(145)
7050 FOR J=0TOC2:IF J=0 THEN POKE 781,C3:SYSC5
7060 IF C1$="_"THEN PRINT"";TAB(J);C2$:PRINT"";TAB(C4-J);C2$
7070 IF C1$="^" THEN POKE 781,J:SYSC5:POKE781,C3-J:SYSC5
7080 NEXT:PRINT"[147]";:C2$="":RETURN